<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>About the Math Toolkit</title>
<link rel="stylesheet" href="../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Math Toolkit 4.1.0">
<link rel="up" href="../overview.html" title="Chapter 1. Overview">
<link rel="prev" href="../overview.html" title="Chapter 1. Overview">
<link rel="next" href="navigation.html" title="Navigation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../overview.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="math_toolkit.main_intro"></a><a class="link" href="main_intro.html" title="About the Math Toolkit">About the Math Toolkit</a>
</h2></div></div></div>
<p>
      This library is divided into several interconnected parts:
    </p>
<h5>
<a name="math_toolkit.main_intro.h0"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.floating_point_utilities"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.floating_point_utilities">Floating
      Point Utilities</a>
    </h5>
<p>
      Utility functions for dealing with floating-point arithmetic, includes functions
      for floating point classification (<code class="computeroutput"><span class="identifier">fpclassify</span></code>,
      <code class="computeroutput"><span class="identifier">isnan</span></code>, <code class="computeroutput"><span class="identifier">isinf</span></code>
      etc), sign manipulation, rounding, comparison, and computing the distance between
      floating point numbers.
    </p>
<h5>
<a name="math_toolkit.main_intro.h1"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.specific_width_floating_point_ty"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.specific_width_floating_point_ty">Specific
      Width Floating-Point Types</a>
    </h5>
<p>
      A set of <code class="computeroutput"><span class="keyword">typedef</span></code>s similar to those
      provided by <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdint</span><span class="special">&gt;</span></code> but for floating-point types.
    </p>
<h5>
<a name="math_toolkit.main_intro.h2"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.mathematical_constants"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.mathematical_constants">Mathematical
      Constants</a>
    </h5>
<p>
      A wide range of high-precision constants ranging from various multiples of
      π, fractions, through to Euler's constant etc.
    </p>
<p>
      These are of course usable from template code, or as non-templates with a simplified
      interface if that is more appropriate.
    </p>
<h5>
<a name="math_toolkit.main_intro.h3"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.statistical_distributions"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.statistical_distributions">Statistical
      Distributions</a>
    </h5>
<p>
      Provides a reasonably comprehensive set of <a class="link" href="../dist.html" title="Chapter 5. Statistical Distributions and Functions">statistical
      distributions</a>, upon which higher level statistical tests can be built.
    </p>
<p>
      The initial focus is on the central <a href="http://en.wikipedia.org/wiki/Univariate" target="_top">univariate
      </a> <a href="http://mathworld.wolfram.com/StatisticalDistribution.html" target="_top">distributions</a>.
      Both <a href="http://mathworld.wolfram.com/ContinuousDistribution.html" target="_top">continuous</a>
      (like <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">normal</a>
      &amp; <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher</a>) and
      <a href="http://mathworld.wolfram.com/DiscreteDistribution.html" target="_top">discrete</a>
      (like <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">binomial</a>
      &amp; <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson</a>)
      distributions are provided.
    </p>
<p>
      A <a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">comprehensive tutorial is provided</a>,
      along with a series of <a class="link" href="stat_tut/weg.html" title="Worked Examples">worked examples</a>
      illustrating how the library is used to conduct statistical tests.
    </p>
<h5>
<a name="math_toolkit.main_intro.h4"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.mathematical_special_functions"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.mathematical_special_functions">Mathematical
      Special Functions</a>
    </h5>
<p>
      Provides a small number of high quality <a class="link" href="../special.html" title="Chapter 8. Special Functions">special functions</a>,
      initially these were concentrated on functions used in statistical applications
      along with those in the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
      Report on C++ Library Extensions</a>.
    </p>
<p>
      The function families currently implemented are the gamma, beta &amp; erf functions
      along with the incomplete gamma and beta functions (four variants of each)
      and all the possible inverses of these, plus digamma, various factorial functions,
      Bessel functions, elliptic integrals, sinus cardinals (along with their hyperbolic
      variants), inverse hyperbolic functions, Legendre/Laguerre/Hermite polynomials
      and various special power and logarithmic functions.
    </p>
<p>
      All the implementations are fully generic and support the use of arbitrary
      "real-number" types, including <a href="../../../../../libs/multiprecision/doc/html/index.html" target="_top">Boost.Multiprecision</a>,
      although they are optimised for use with types with known-about <a href="http://en.wikipedia.org/wiki/Significand" target="_top">significand
      (or mantissa)</a> sizes: typically <code class="computeroutput"><span class="keyword">float</span></code>,
      <code class="computeroutput"><span class="keyword">double</span></code> or <code class="computeroutput"><span class="keyword">long</span>
      <span class="keyword">double</span></code>.
    </p>
<p>
      These functions also provide the basis of support for the TR1 special functions.
    </p>
<h5>
<a name="math_toolkit.main_intro.h5"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.root_finding_and_function_minimi"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.root_finding_and_function_minimi">Root Finding
      and Function Minimisation</a>
    </h5>
<p>
      A comprehensive set of root finding algorithms over the real-line, both with
      and without derivative support.
    </p>
<p>
      Also function minimisation via Brent's Method.
    </p>
<h5>
<a name="math_toolkit.main_intro.h6"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.polynomials_and_rational_functio"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.polynomials_and_rational_functio">Polynomials
      and Rational Functions</a>
    </h5>
<p>
      Tools for manipulating polynomials and for efficient evaluation of rationals
      or polynomials.
    </p>
<h5>
<a name="math_toolkit.main_intro.h7"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.interpolation"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.interpolation">Interpolation</a>
    </h5>
<p>
      Function interpolation via Barycentric or cubic B_spline approximations. Smoothing.
    </p>
<h5>
<a name="math_toolkit.main_intro.h8"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.numerical_integration_quadrature"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.numerical_integration_quadrature">Numerical
      Integration (Quadrature) and Differentiation</a>
    </h5>
<p>
      A reasonably comprehensive set of routines for integration (trapezoidal, Gauss-Legendre,
      Gauss-Kronrod and double-exponential) and differentiation. (See also automatic
      differentiation).
    </p>
<p>
      The integration routines are all usable for functions returning complex results
      - and as a result for contour integrals as well.
    </p>
<h5>
<a name="math_toolkit.main_intro.h9"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.quaternions_and_octonions"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.quaternions_and_octonions">Quaternions
      and Octonions</a>
    </h5>
<p>
      Quaternions and Octonians as class templates similar to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code>.
    </p>
<h5>
<a name="math_toolkit.main_intro.h10"></a>
      <span class="phrase"><a name="math_toolkit.main_intro.automatic_differentiation"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.automatic_differentiation">Automatic
      Differentiation</a>
    </h5>
<p>
      Autodiff is a header-only C++ library that facilitates the automaticdifferentiation
      (forward mode) of mathematical functions of single and multiple variables.
    </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2006-2021 Nikhar Agrawal, Anton Bikineev, Matthew Borland,
      Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert Holin, Bruno
      Lalande, John Maddock, Evan Miller, Jeremy Murphy, Matthew Pulver, Johan Råde,
      Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, Daryle
      Walker and Xiaogang Zhang<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../overview.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
